//===============================================================================
// Microsoft patterns & practices
// Smart Client Software Factory 2010
//===============================================================================
// Copyright (c) Microsoft Corporation.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================
// The example companies, organizations, products, domain names,
// e-mail addresses, logos, people, places, and events depicted
// herein are fictitious.  No association with any real company,
// organization, product, domain name, email address, logo, person,
// places, or events is intended or should be inferred.
//===============================================================================
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.42
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 
using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Description;
using System.Web.Services.Protocols;
using System.Xml.Serialization;

namespace GlobalBankServices
{
    
    /// <remarks/>
    [GeneratedCode("wsdl", "2.0.50727.42")]
    [WebServiceBinding(Name="CustomerProductsServiceSoap", Namespace="http://GlobalBranchServices/2006/05/CustomerProducts")]
    public interface ICustomerProductsServiceSoap {
        
        /// <remarks/>
        [WebMethod()]
        [SoapDocumentMethod("http://GlobalBranchServices/2006/05/CustomerProducts/GetCustomerAccounts", RequestNamespace="http://GlobalBranchServices/2006/05/CustomerProducts", ResponseNamespace="http://GlobalBranchServices/2006/05/CustomerProducts", Use=SoapBindingUse.Literal, ParameterStyle=SoapParameterStyle.Wrapped)]
        [return: XmlElement("getCustomerAccountsResponse", Namespace="http://GlobalBranchServices/2006/05/CustomerProductsMessages.xsd")]
        getCustomerAccountsResponseType GetCustomerAccounts([XmlElement(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsMessages.xsd")] getCustomerAccountsRequestType getCustomerAccountsRequest);
    }
    
    /// <remarks/>
    [GeneratedCode("wsdl", "2.0.50727.42")]
    [Serializable()]
    [DebuggerStepThrough()]
    [DesignerCategory("code")]
    [XmlType(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsMessages.xsd")]
    public partial class getCustomerAccountsRequestType {
        
        private string customerIdField;
        
        /// <remarks/>
        public string customerId {
            get {
                return this.customerIdField;
            }
            set {
                this.customerIdField = value;
            }
        }
    }
    
    /// <remarks/>
    [GeneratedCode("wsdl", "2.0.50727.42")]
    [Serializable()]
    [DebuggerStepThrough()]
    [DesignerCategory("code")]
    [XmlType(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsEntities.xsd")]
    public partial class creditCardTypeType {
        
        private string typeField;
        
        private decimal maxCreditLimitField;
        
        private float feesField;
        
        private float interestRateField;
        
        private int idField;
        
        /// <remarks/>
        public string type {
            get {
                return this.typeField;
            }
            set {
                this.typeField = value;
            }
        }
        
        /// <remarks/>
        public decimal maxCreditLimit {
            get {
                return this.maxCreditLimitField;
            }
            set {
                this.maxCreditLimitField = value;
            }
        }
        
        /// <remarks/>
        public float fees {
            get {
                return this.feesField;
            }
            set {
                this.feesField = value;
            }
        }
        
        /// <remarks/>
        public float interestRate {
            get {
                return this.interestRateField;
            }
            set {
                this.interestRateField = value;
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public int id {
            get {
                return this.idField;
            }
            set {
                this.idField = value;
            }
        }
    }
    
    /// <remarks/>
    [GeneratedCode("wsdl", "2.0.50727.42")]
    [Serializable()]
    [DebuggerStepThrough()]
    [DesignerCategory("code")]
    [XmlType(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsEntities.xsd")]
    public partial class creditCardType {
        
        private string customerIdField;
        
        private creditCardTypeType accountTypeField;
        
        private decimal cardCreditLimitField;
        
        private decimal availableBalanceField;
        
        private decimal paymentDueField;
        
        private DateTime dateOpenedField;
        
        private DateTime lastPaymentDueField;
        
        private string accountNumberField;
        
        /// <remarks/>
        public string customerId {
            get {
                return this.customerIdField;
            }
            set {
                this.customerIdField = value;
            }
        }
        
        /// <remarks/>
        public creditCardTypeType accountType {
            get {
                return this.accountTypeField;
            }
            set {
                this.accountTypeField = value;
            }
        }
        
        /// <remarks/>
        public decimal cardCreditLimit {
            get {
                return this.cardCreditLimitField;
            }
            set {
                this.cardCreditLimitField = value;
            }
        }
        
        /// <remarks/>
        public decimal availableBalance {
            get {
                return this.availableBalanceField;
            }
            set {
                this.availableBalanceField = value;
            }
        }
        
        /// <remarks/>
        public decimal paymentDue {
            get {
                return this.paymentDueField;
            }
            set {
                this.paymentDueField = value;
            }
        }
        
        /// <remarks/>
        [XmlElement(DataType="date")]
        public DateTime dateOpened {
            get {
                return this.dateOpenedField;
            }
            set {
                this.dateOpenedField = value;
            }
        }
        
        /// <remarks/>
        [XmlElement(DataType="date")]
        public DateTime lastPaymentDue {
            get {
                return this.lastPaymentDueField;
            }
            set {
                this.lastPaymentDueField = value;
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string accountNumber {
            get {
                return this.accountNumberField;
            }
            set {
                this.accountNumberField = value;
            }
        }
    }
    
    /// <remarks/>
    [GeneratedCode("wsdl", "2.0.50727.42")]
    [Serializable()]
    [DebuggerStepThrough()]
    [DesignerCategory("code")]
    [XmlType(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsEntities.xsd")]
    public partial class accountTypeType {
        
        private string typeField;
        
        private float feesField;
        
        private int maxMonthlyTransactionField;
        
        private float interestRateField;
        
        private int idField;
        
        /// <remarks/>
        public string type {
            get {
                return this.typeField;
            }
            set {
                this.typeField = value;
            }
        }
        
        /// <remarks/>
        public float fees {
            get {
                return this.feesField;
            }
            set {
                this.feesField = value;
            }
        }
        
        /// <remarks/>
        public int maxMonthlyTransaction {
            get {
                return this.maxMonthlyTransactionField;
            }
            set {
                this.maxMonthlyTransactionField = value;
            }
        }
        
        /// <remarks/>
        public float interestRate {
            get {
                return this.interestRateField;
            }
            set {
                this.interestRateField = value;
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public int id {
            get {
                return this.idField;
            }
            set {
                this.idField = value;
            }
        }
    }
    
    /// <remarks/>
    [GeneratedCode("wsdl", "2.0.50727.42")]
    [Serializable()]
    [DebuggerStepThrough()]
    [DesignerCategory("code")]
    [XmlType(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsEntities.xsd")]
    public partial class accountType {
        
        private string customerIdField;
        
        private accountTypeType accountType1Field;
        
        private decimal balanceField;
        
        private DateTime dateOpenedField;
        
        private DateTime lastTransactionAtField;
        
        private float interestRateField;
        
        private string accountNumberField;
        
        /// <remarks/>
        public string customerId {
            get {
                return this.customerIdField;
            }
            set {
                this.customerIdField = value;
            }
        }
        
        /// <remarks/>
        [XmlElement("accountType")]
        public accountTypeType accountType1 {
            get {
                return this.accountType1Field;
            }
            set {
                this.accountType1Field = value;
            }
        }
        
        /// <remarks/>
        public decimal balance {
            get {
                return this.balanceField;
            }
            set {
                this.balanceField = value;
            }
        }
        
        /// <remarks/>
        [XmlElement(DataType="date")]
        public DateTime dateOpened {
            get {
                return this.dateOpenedField;
            }
            set {
                this.dateOpenedField = value;
            }
        }
        
        /// <remarks/>
        public DateTime lastTransactionAt {
            get {
                return this.lastTransactionAtField;
            }
            set {
                this.lastTransactionAtField = value;
            }
        }
        
        /// <remarks/>
        public float interestRate {
            get {
                return this.interestRateField;
            }
            set {
                this.interestRateField = value;
            }
        }
        
        /// <remarks/>
        [XmlAttribute()]
        public string accountNumber {
            get {
                return this.accountNumberField;
            }
            set {
                this.accountNumberField = value;
            }
        }
    }
    
    /// <remarks/>
    [GeneratedCode("wsdl", "2.0.50727.42")]
    [Serializable()]
    [DebuggerStepThrough()]
    [DesignerCategory("code")]
    [XmlType(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsMessages.xsd")]
    public partial class getCustomerAccountsResponseType {
        
        private string customerIdField;
        
        private accountType[] accountsField;
        
        private creditCardType[] creditCardsField;
        
        /// <remarks/>
        public string customerId {
            get {
                return this.customerIdField;
            }
            set {
                this.customerIdField = value;
            }
        }
        
        /// <remarks/>
        [XmlArrayItem("account", IsNullable=false)]
        public accountType[] accounts {
            get {
                return this.accountsField;
            }
            set {
                this.accountsField = value;
            }
        }
        
        /// <remarks/>
        [XmlArrayItem("creditCard", IsNullable=false)]
        public creditCardType[] creditCards {
            get {
                return this.creditCardsField;
            }
            set {
                this.creditCardsField = value;
            }
        }
    }
}
